package com.xiaoshuidi.cloud.module.bpm.controller.admin.swo.vo;


import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import javax.validation.constraints.*;

@Data
public class SwoTicketBaseVO {

    @Schema(description = "维修区域：1：公共区域；2：房屋内部", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "维修区域不能为空！")
    private Integer maintenanceFlag;

    @Schema(description = "租客房间")
    private Long roomId;

    @Schema(description = "房间全名")
    private String roomFullName;

    @Schema(description = "门店id")
    private Long apartmentId;

    @Schema(description = "租客姓名")
    private String customerName;

    @Schema(description = "租客手机")
    private String customerMobile;

    @Schema(description = "上门联系电话")
    private String toDoorMobile;

    @Schema(description = "工单来源；1：租客 2：内部；", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "工单来源内部不能为空！")
    private Integer source;

    @Schema(description = "服务类型", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "服务类型不能为空")
    private Integer serviceType;

    @Schema(description = "处理级别：1：一般；2：紧急", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer level;

    @Schema(description = "服务日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "服务开始日期不能为空")
    private LocalDateTime serviceTimeStart;

    @Schema(description = "服务日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "服务结束日期不能为空")
    private LocalDateTime serviceTimeEnd;

    @Schema(description = "服务期望完成日期")
    private LocalDate serviceTobeCompleted;

    @Schema(description = "责任方：1：租客；2：第三方；3：公司", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "责任方不能为空")
    private Integer responsibleParty;

    @Schema(description = "联系手机")
    private String contactMobile;

    @Schema(description = "联系姓名")
    private String contactName;

    @Schema(description = "服务主题")
    private String topic;

    @Schema(description = "服务内容")
    private String content;

    @Schema(description = "附件，以;分开", requiredMode = Schema.RequiredMode.REQUIRED)
    private String attachments;

    @Schema(description = "状态：1：待指派；2：进行中 3: 已完成")
    private Integer status;

    @Schema(description = "指派分配人")
    private Long assignee;

    @Schema(description = "状态：0：待处理；1：处理中；2：已处理；3：不予处理")
    private Integer processStatus;

    @Schema(description = "服务评分")
    private Integer rating;

    @Schema(description = "服务评价")
    private String comments;

    @Schema(description = "是否已评价")
    private Boolean evaluatedOrNot;

    @Schema(description = "是否已受理")
    private Boolean isAcceptance;

    @Schema(description = "工单编号")
    private String woNumber;

    @Schema(description = "受理图片链接")
    private String acceptancePicture;

    @Schema(description = "受理备注")
    private String acceptanceRemark;

    @Schema(description = "维修后图片链接")
    private String finishPicture;

    @Schema(description = "维修后备注")
    private String finishRemark;

    @Schema(description = "维修类型")
    private Integer repairType;

    @Schema(description = "实际受理时间")
    private LocalDateTime actualProcessingTime;

    @Schema(description = "工单来源 1:PC 2:租客")
    private String ticketFrom;

    private Long deptId;

    @Schema(description = "完成时间")
    private LocalDateTime completeTime;

    @Schema(description = "要求完工时间")
    private LocalDateTime requiredCompletionTime;

}
